using SmartLink.DTOS;
using SmartLink.DTOS.SysBasic;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartLink.Application.IServices
{
    public interface ISysModuleAppServices
    {
        Results AddModule(SysModuleDTO model);
        Results UpdateModule(SysModuleDTO model);
        Results DeleteModule(int id);
        Results<SysModuleDTO> GetModule(int id);
        Results<IList<SysModuleTreeNodeDTO>> GetModuleTree();
        Results<IEnumerable<SysModuleDTO>> GetModuleChildren(int parentId);

        Results AddFunction(SysModuleFunctionDTO model);
        Results UpdateFunction(SysModuleFunctionDTO model);
        Results DeleteFunction(int id);
        Results<SysModuleFunctionDTO> GetFunction(int id);
        Results<IEnumerable<SysModuleFunctionDTO>> GetModuleFunctions(string moduleCode);

        Results<IEnumerable<SysModuleFunctionTreeNodeDTO>> GetModuleFunctionTree();
        Results<IList<SysModuleWithFunctionsListItemDTO>> GetModuleAndFunctionsList();
    }
}
